﻿namespace MicroCloud.Options
{
    /// <summary>
    /// SignalR实时通信配置
    /// </summary>
    public class SignalROption
    {
        #region 属性
        /// <summary>
        /// 获取或设置 客户端必须在服务器关闭连接之前发送消息的时间窗口。默认超时为30秒。
        /// </summary>
        public double ClientTimeoutInterval { get; set; }
        
        /// <summary>
        /// 获取或设置 服务器用于超时客户端传入握手请求的时间间隔。默认超时为15秒。
        /// </summary>
        public double HandshakeTimeout { get; set; }

        /// <summary>
        /// 获取或设置 服务器向连接的客户端发送保持活动ping所用的间隔。默认间隔为15秒。
        /// </summary>
        public double KeepAliveInterval { get; set; }

        /// <summary>
        /// 获取或设置 单个传入集线器消息的最大消息大小。默认值为32KB。
        /// </summary>
        public long? MaximumReceiveMessageSize { get; set; }

        /// <summary>
        /// 获取或设置 客户端上载流的最大缓冲区大小。默认大小为10。
        /// </summary>
        public int? StreamBufferCapacity { get; set; }

        /// <summary>
        /// 获取或设置 启用MessagePack(支持二进制内容传输)
        /// </summary>
        public bool MessagePackEnabled { get; set; }

        /// <summary>
        /// 获取或设置 线路型式(用于挂载SignalR终结点)
        /// </summary>
        public string RoutePattern { get; set; }

        /// <summary>
        /// 获取或设置 是否启用
        /// </summary>
        public bool Enabled { get; set; }

        #endregion

    }

}
